﻿using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Model.Tipologias;
using System.Collections;
using Model.Produtos;


namespace welwitschia.Produtos
{
    public partial class ProdutosLista : System.Web.UI.Page
    {
        IProdutoService produtoservice = new ProdutoService();
        
        
        public void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                IGrupoProdutoService grupoProdutoService = new GrupoProdutoService();
                ddlPesquisaGrupoProduto.DataTextField = "Nome";
                ddlPesquisaGrupoProduto.DataValueField = "CodGrupoProduto";
                ddlPesquisaGrupoProduto.DataSource = grupoProdutoService.ObterTodos();
                ddlPesquisaGrupoProduto.DataBind();
                ddlPesquisaGrupoProduto.Items.Insert(0, new ListItem() { Text = "Todos", Value = "-1000" });

                BindListView(String.Empty,String.Empty);
            }

        }


        protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e)
        {
            Produto produto = produtoservice.ObterPorIdProduto(e.Keys[0].ToString());

            produtoservice.Apaga(produto);
            String codGrupoProduto = String.Empty;
            if (ddlPesquisaGrupoProduto.SelectedValue != "-1000")
                codGrupoProduto = ddlPesquisaGrupoProduto.SelectedValue;
            BindListView(txtPesquisaProduto.Text, codGrupoProduto);
        }

        protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e)
        {
        }

        protected void Unnamed1_Click(object sender, EventArgs e)
        {

            Response.Redirect(@"~\Produtos\ProdutosDetalhe.aspx?produtoId="+"");
        }

        protected void btnPesquisa_Click(object sender, EventArgs e)
        {
            String codGrupoProduto = String.Empty;
            if (ddlPesquisaGrupoProduto.SelectedValue != "-1000")
                codGrupoProduto = ddlPesquisaGrupoProduto.SelectedValue;
            BindListView(txtPesquisaProduto.Text, codGrupoProduto);
        }

        protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
            
            if (e.CommandName == "Edit")
                Response.Redirect(@"~\Produtos\ProdutosDetalhe.aspx?produtoId=" + e.CommandArgument.ToString().Split(';')[0]);
        }


        protected void ListView_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
        {
            dplvProduto.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
            String codGrupoProduto = String.Empty;
            if (ddlPesquisaGrupoProduto.SelectedValue != "-1000")
                codGrupoProduto = ddlPesquisaGrupoProduto.SelectedValue;
            BindListView(txtPesquisaProduto.Text, codGrupoProduto);

        }


        #region Metodos auxiliares

        private void BindListView(String pesquisa, String codGrupoProduto)
        {
            this.ListView.DataSource = produtoservice.ObterPorPesquisa(pesquisa, codGrupoProduto);
            ListView.DataBind();
        }

        #endregion

        

    }
}